package com.ity.teamanagement.mapper;

import com.ity.teamanagement.entity.Role;
import com.ity.teamanagement.entity.User;
import com.ity.teamanagement.entity.inputParam.AddUserParam;
import com.ity.teamanagement.entity.inputParam.UserLogin;
import com.ity.teamanagement.entity.outputResult.UserDetail;
import com.ity.teamanagement.entity.outputResult.UserDetailVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author coderFu
 * @create 2021/5/23
 */
@Mapper
public interface UserMapper {


    /**
     * 根据用户名查询是否存在用户
     * @param username
     * @return
     */
    int queryUserByName(String username);

    /**
     * 根据用户名和密码查询用户信息
     * @param userLogin
     * @return
     */
    UserDetail queryUserByUserNameAndPwd(UserLogin userLogin);

    /**
     * 查询所有的用户个数
     * @return
     */
    int findAllUserTotal();

    /**
     * 查询所有用户信息
     * @param pageNumber
     * @param pageSize
     * @return
     */
    List<UserDetailVo> findAllUsers(int pageNumber, int pageSize);


    /**
     * 判断添加的用户用户名是否存在
     * @param username
     * @return
     */
    Integer findUserNameIsExist(String username);

    /**
     * 后台添加用户
     * @param user
     * @return
     */
    Integer addUser(User user);

    /**
     * 查询所有用户角色
     * @return
     */
    List<Role> findAllRole();

    /**
     * 后台修改用户信息
     * @param user
     * @return
     */
    Integer updateUser(User user);

    /**
     * 后台根据id删除用户
     * @param ids
     * @return
     */
    Integer deleteUserById(List<Long> ids);

    /**
     * 后台根据id查询用户信息
     * @param id
     * @return
     */
    UserDetail findUserById(Long id);
}
